Git in MacOS
Tags
Git
Github
Words count
792 字
Reading time
4 分钟
安装Git
bash
brew install git
#homebrew
本地Git管理
bash
cd targetFilePath # 进入目标项目
git init # 初始化Git
git config --global user.name "username" # 设置Git信息
git config --global user.email "email"
touch .gitignore # 编写`.gitignore`信息
git add . # 推送源文件至Git仓库
git commit -m "推送版本信息"
关联Github
- 创建repository
- 右上角
+
,New respository,记录Github ID和repository ID
- 右上角
- 本地生成SSH密钥并关联
- 查看是否已存在SSH key,执行
ls -al ~/.ssh
,如有则备份删除,如无则继续 - 生成密钥,执行
ssh-keygen -t rsa -C "关联邮箱"
- 提示输入文件名称及密码。文件名称可忽略,系统将默认生成名为id_rsa
- 将生成的密钥添加至ssh-agent,如下:
eval "$(ssh-agent -s)"
ssh add ~/.ssh/id_rsa
- 执行
ls -al ~/.ssh
,可看到id_rsa与id_rsa.pub - 执行
pbcopy < ~/.ssh/id_rsa.pub
,复制所有内容 - 登录Github,进入setting - SSH Keys - Add SSH Key,粘贴复制内容。即完成SSH Key的添加关联
- 测试。执行
ssh -T [email protected]
,如出现提示Hi username! You've successfully authenticated, but Github does not provide shell access.
则关联成功
- 查看是否已存在SSH key,执行
- 版本提交
- 添加Git地址,执行
git remote add origin [email protected]:GithubID/RepositoryID.git
- 以上origin表示关联于远程仓库的本地别名
- 提交至Github master分支,执行
git push origin master
- 若提交失败,提示冲突,则先pull远程内容在push提交
git pull origin master
git push origin master
- 添加Git地址,执行
日常提交
bash
git add <file> # 添加 <file> 文件到暂存区
# git add * # 添加所有文件到暂存区
git commit -m "版本提交信息" # 将暂存区的文件提交到本地仓库(附带版本提交信息)
git status # 查看工作区、暂存区以及本地仓库的状态
git log # 查看提交历史
# git remote add origin <remote_repository_url> # 添加远程仓库
# git push -u origin master # 首次将本地仓库origin推送到远程仓库master,使用-u后git会自动关联本地与远程
git push origin master # 常规推送本地仓库至远程仓库
git pull origin master # 从远程仓库拉取最新内容
# git branch -a # 查看所有分支
# git branch <branch_name> # 创建 <branch_name> 分支
# git branch -m <old> <new> # 修改分支名称
# git branch -d[-D] <brancn_name> # [强制]删除分支,删除前切换到其他分支
# git checkout <branch_name> # 切换至 <branch_name> 分支
# git merge <branch_name> # 合并 <branch_name> 分支至目标分支
# git checkout -- <file> # 撤销 <file> 文件在工作区的最后一次修改
# git checkout -- . # 撤销工作区所有文件在最近一次提交后的修改
# git reset HEAD <file> # 撤销 <file> 文件在暂存区的最后一次修改,但保留工作区的修改
# git reset HEAD . # 撤销暂存区所有文件在最近一次提交后的修改,但保留工作区的修改
# git remote remove <repo> # 删除本地仓库与远程仓库的关联